<?php

namespace Reusify\Helper;

class File
{
    /**
     * 格式化文件大小
     *
     * @param int $size 字节大小
     * @return string 格式化后的大小，如 "10.5 MB"
     */
    public static function formatSize(int $size): string
    {
        if ($size < 0) {
            return '0 B';
        }

        $units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB'];
        $i = 0;

        // 每次除以1024，直到小于1024或者达到最大单位
        while ($size >= 1024 && $i < count($units) - 1) {
            $size /= 1024;
            $i++;
        }

        return round($size, 2) . ' ' . $units[$i];
    }
}